#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
main.py - 命令行文本计数统计工具（基础版 v0.2）

支持功能：
- -c : 统计字符数
- -w : 统计单词数
- -s : 统计句子数

用法：
    python main.py -c textexample.txt     # 统计字符数
    python main.py -w textexample.txt     # 统计单词数
    python main.py -s textexample.txt     # 统计句子数
"""

import sys
import os
import re

def count_characters(text):
    """统计字符数（包括空格和换行符）"""
    return len(text)

def count_words(text):
    """统计单词数（以空格、换行、标点分隔）"""
    words = re.findall(r'[a-zA-Z0-9]+', text)
    return len(words)

def count_sentences(text):
    """统计句子数（以 . ! ? 结尾）"""
    sentences = re.split(r'[.!?]+', text)
    sentences = [s.strip() for s in sentences if s.strip()]
    return len(sentences)

def main():
    if len(sys.argv) < 3:
        print("用法: python main.py [参数] [文件名]")
        print("支持的参数:")
        print("  -c : 统计字符数")
        print("  -w : 统计单词数")
        print("  -s : 统计句子数")
        sys.exit(1)

    option = sys.argv[1]
    filename = sys.argv[2]

    if not os.path.exists(filename):
        print(f"错误: 文件 '{filename}' 不存在。")
        sys.exit(1)

    try:
        with open(filename, 'r', encoding='utf-8') as f:
            content = f.read()
    except Exception as e:
        print(f"读取文件时出错: {e}")
        sys.exit(1)

    if option == '-c':
        result = count_characters(content)
        print(f"字符数: {result}")
    elif option == '-w':
        result = count_words(content)
        print(f"单词数: {result}")
    elif option == '-s':
        result = count_sentences(content)
        print(f"句子数: {result}")
    else:
        print(f"未知参数: {option}")
        print("支持的参数: -c, -w, -s")
        sys.exit(1)

if __name__ == "__main__":
    main()